package com.dhcc.bpm.modules.metadata.service;

import com.dhcc.bpm.modules.metadata.entity.ApiMetadata;
import com.dhcc.bpm.modules.metadata.vo.ApiMetadataVO;
import org.springblade.core.mp.base.BaseService;
import com.baomidou.mybatisplus.core.metadata.IPage;

import java.util.List;

/**
 * 接口定义数据表 服务类
 *
 * @author ccab
 * @since 2020-06-03
 */
public interface IApiMetadataService extends BaseService<ApiMetadata> {

	/**
	 * 自定义分页
	 *
	 * @param page
	 * @param apiMetadata
	 * @return
	 */
	IPage<ApiMetadataVO> selectApiMetadataPage(IPage<ApiMetadataVO> page, ApiMetadataVO apiMetadata);


	List<ApiMetadataVO> selectApiMetadataList(ApiMetadataVO apiMetadata);

	List<ApiMetadataVO> queryApiMetadataList(ApiMetadata apiMetadata);

	/**
	 * @Description 树形
	 * @Author daina
	 * @Date 15:17 2020/3/26
	 * @param
	 * @return java.util.List<com.dhcc.bpm.modules.metadata.vo.MetadataVO>
	 **/
	List<ApiMetadataVO> tree();
	/**
	 * @Description
	 * @Author daina
	 * @Date 15:17 2020/3/26
	 * @param groupId
	 * @return java.util.List<com.dhcc.bpm.modules.metadata.vo.ApiMetadata>
	 **/
	List<ApiMetadata> findByGroupId(Long groupId);
	/**
	 * @Description
	 * @Author daina
	 * @Date 15:17 2020/3/26
	 * @param apiId
	 * @return java.util.List<com.dhcc.bpm.modules.metadata.vo.ApiMetadata>
	 **/
	List<ApiMetadata> findOtherByApiId(Long apiId);
	/**
	 * @Description
	 * @Author daina
	 * @Date 15:17 2020/3/26
	 * @param apiId
	 * @return java.util.List<com.dhcc.bpm.modules.metadata.vo.ApiMetadata>
	 **/
	List<ApiMetadata> findReqObjectByApiId(Long apiId);
	/**
	 * @Description 请求子类
	 * @Author daina
	 * @Date 15:17 2020/3/26
	 * @param apiId
	 * @return java.util.List<com.dhcc.bpm.modules.metadata.vo.ApiMetadata>
	 **/
	List<ApiMetadata> findChildByApiId(Long apiId, Long groupId);

	List<ApiMetadataVO> findChildByGroupId(Long groupId);
	/**
	 * @Description 父类请求参数
	 * @Author daina
	 * @Date 15:17 2020/3/26
	 * @param apiId
	 * @return java.util.List<com.dhcc.bpm.modules.metadata.vo.ApiMetadata>
	 **/
	ApiMetadata findParentObjectByApiId(Long apiId);
	/**
	 * @Description 响应参数
	 * @Author daina
	 * @Date 15:17 2020/3/26
	 * @param apiId
	 * @return java.util.List<com.dhcc.bpm.modules.metadata.vo.ApiMetadata>
	 **/
	ApiMetadata findResObjectByApiId(Long apiId);
	/**
	 * @Description 参数集合
	 * @Author zhangxiaozhuang
	 * @Date 14:50 2020/6/20
	 * @param opcApiIdReq
	 * @return java.util.List<com.dhcc.bpm.modules.metadata.vo.ApiMetadata>
	 **/
	List<String> getApiIds(int addType,Long baseProductId,Long opcApiIdReq,String inType,Integer bodyType,Long parentId,String apiComData);

	/**
	 * @Description 查询 同级的参数
	 * @Author zhangzexu
	 * @Date 14:50 2020/11/10
	 * @param apiMetadata
	 * @return java.util.List<com.dhcc.bpm.modules.metadata.entity.ApiMetadata>
	 **/
	List<ApiMetadata> findOrderChild(ApiMetadata apiMetadata);

	/**
	 * @Description 查询 同级的参数
	 * @Author zhangzexu
	 * @Date 14:50 2020/11/10
	 * @param   apiId, String inType, int bodyType,int groupId
	 * @return java.util.List<com.dhcc.bpm.modules.metadata.entity.ApiMetadata>
	 **/
	List<ApiMetadata> findOrderChild(int addType,Long baseProductId,Long apiId, String inType, int bodyType,Long groupId);
	Long  findSysIdByApiId(Long apiId);
}
